/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.googlecode.oskis.library.db;
import java.sql.*;

/**
 * Liest Systemparameter aus der Datenbank
 * @author thomas
 */
public class SystemParameter {
    private Connection db;
    /**
     * Konstruktor
     * @param db
     */
    public SystemParameter(Connection db) {
        this.db=db;        
    }
    
    /**
     *  Parameterwert als String lesen 
     *  liefert null, wenn Parameter nicht gefunden wurde
     */
    public String getStringParam(String kategorie,String paramname) {
        String retval;
        String SQL="select value from sparams where kategorie='"+kategorie+"' and parameter='"+paramname+"'";
        try {
            Statement st=db.createStatement();
            ResultSet rs=st.executeQuery(SQL);
            if (rs.next()) {
                retval=rs.getString("value");
            } else {
                retval=null;
            }
            st.close();
        } catch (SQLException e) {
            e.printStackTrace();
            retval=null;
        }
        return(retval);
    }
    
    
    /**
     * Liest einen Parameter aus der Datenbank, liefert einen Defaultwert, wenn der Parameter nicht gefunden wurde.
     * @param kategorie
     * @param paramname
     * @param defaultvalue
     * @return
     */
    public String getStringParam(String kategorie,String paramname,String defaultvalue) {
        String retval=getStringParam(kategorie,paramname);
        if (retval==null) {
            retval=defaultvalue;
        }
        return(retval);
    }
    
    
    /**
     * Liest einen Integer Wert aus der Datenbank, liefert einen Defaultwert, wenn der Parameter nicht gefunden wurde,
     * oder der Parameter nicht in Integer gewandelt werden konnte.
     * @param kategorie
     * @param paramname
     * @param defaultvalue
     * @return
     */
    public int getIntParam(String kategorie,String paramname,int defaultvalue) {
        int retval;
        String tempval=getStringParam(kategorie,paramname);
        if (tempval==null) {
            retval=defaultvalue;
        } else {
            try {
                retval=Integer.parseInt(tempval);
            } catch (NumberFormatException e) {
                e.printStackTrace();
                retval=defaultvalue;
            }
        }
        return(retval);
    }
    
}
